From: Aleksey Vasilenko Date: Thu, 11 Sep 2025 08:11:08 +0000 (+0300) Subject: erlang: update to 28.0.3 X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22/%22https:/collectd.org/%22?a=commitdiff_plain;h=06bc7784ce8a0d373a86203593502f088306bba3;p=feed%2Fpackages.git erlang: update to 28.0.3 - Takeover maintainership - Enable parallel build - Depend from libstdcpp only on JIT-enabled platforms (x86_64 and aarch64) - Add SCTP support (off by default) - Remove OTP-internal versions and rely on package versions for sub-packages - Remove obsolete configure vars - Move out sasl from erlang package into separate erlang-sasl - Add more sub-packages - erlang-diameter - erlang-eldap - erlang-ftp - erlang-odbc - erlang-parsetools - erlang-tftp - Rename erlang-os_mon to erlang-os-mon - Clean-up descriptions text - Disable MIPS16 again to fix mips* targets Signed-off-by: Aleksey Vasilenko --- diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile index 1ccd1b785e..693f58990d 100644 --- a/lang/erlang/Makefile +++ b/lang/erlang/Makefile @@ -8,30 +8,62 @@ include $(TOPDIR)/rules.mk PKG_NAME:=erlang -PKG_VERSION:=27.0.1 +PKG_VERSION:=28.0.3 PKG_RELEASE:=1 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/erlang/otp/releases/download/OTP-$(PKG_VERSION) -PKG_HASH:=26d894e2f0dda9d13560af08ea589afc01569df6b5486e565beb5accb99c9cf4 +PKG_HASH:=0cdf3b44e327439ea6677e61e06f28a0f82ea080af2dcbd665bc5a945b167012 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE.txt -PKG_MAINTAINER:=Arnaud Sautaux +PKG_MAINTAINER:=Aleksey Vasilenko PKG_CPE_ID:=cpe:/a:erlang:erlang -PKG_BUILD_DEPENDS:=erlang/host openssl +PKG_BUILD_DEPENDS:=erlang/host openssl unixodbc/host +PKG_BUILD_FLAGS:=no-mips16 PKG_ASLR_PIE:=0 -PKG_CONFIG_DEPENDS:= \ - CONFIG_KERNEL_TRANSPARENT_HUGEPAGE - HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION) +HOST_BUILD_PARALLEL:=1 +PKG_BUILD_PARALLEL:=1 + include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk +define Package/erlang/config +config ERLANG_JIT + bool + depends on (x86_64||aarch64) + default y + +config ERLANG_SCTP + bool "SCTP protocol support" + default n +endef + +## Host +HOST_CONFIGURE_ARGS += \ + --without-wx \ + --with-ssl="$(STAGING_DIR_HOST)" \ + --without-javac + +## Target +CONFIGURE_ARGS += \ + --with-odbc \ + --without-javac \ + --enable-shared-zlib \ + --enable-dynamic-ssl-lib \ + --$(if $(CONFIG_ERLANG_JIT),enable,disable)-jit \ + --$(if $(CONFIG_ERLANG_SCTP),enable,disable)-sctp + +CONFIGURE_VARS += \ + SHLIB_LD="$(TARGET_CC)" \ + TARGET_ARCH="$(TARGET_ARCH)" \ + erl_xcomp_sysroot="$(STAGING_DIR)" + define Package/erlang/Default SUBMENU:=Erlang SECTION:=lang @@ -41,300 +73,300 @@ define Package/erlang/Default endef define Package/erlang/Default/description - Erlang/OTP is a general-purpose programming language and runtime - environment. Erlang has built-in support for concurrency, distribution - and fault tolerance. + Erlang/OTP is a general-purpose programming language and runtime environment. endef define Package/erlang $(call Package/erlang/Default) - DEPENDS+= +libncurses +librt +zlib +libstdcpp - PROVIDES:= erlang-erts=15.0.1 erlang-kernel=10.0.1 erlang-sasl=4.2.2 erlang-stdlib=6.0.1 + DEPENDS+= +libncurses +librt +zlib +ERLANG_SCTP:libsctp +ERLANG_JIT:libstdcpp + PROVIDES:= erlang-erts erlang-kernel erlang-stdlib endef define Package/erlang/description $(call Package/erlang/Default/description) - . - This package contains the runtime implementation and a minimal set of - modules (erts, kernel, sasl & stdlib). + This package contains the runtime implementation and a minimal set of modules + (erts, kernel & stdlib). endef - define Package/erlang-asn1 $(call Package/erlang/Default) TITLE:=Abstract Syntax Notation One (ASN.1) support - VERSION:=5.3 - DEPENDS+= +erlang +erlang-syntax-tools + DEPENDS+= +erlang endef define Package/erlang-asn1/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides Abstract Syntax Notation One (ASN.1) - support. + This package provides Abstract Syntax Notation One (ASN.1) support. endef - define Package/erlang-compiler $(call Package/erlang/Default) TITLE:=Byte code compiler - VERSION:=8.5.1 DEPENDS+= +erlang endef define Package/erlang-compiler/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides a byte code compiler for Erlang which - produces highly compact code. + This package provides a byte code compiler for Erlang which produces highly + compact code. endef - define Package/erlang-crypto $(call Package/erlang/Default) TITLE:=Cryptography support - VERSION:=5.5 DEPENDS+= +erlang +libopenssl endef define Package/erlang-crypto/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides functions for computation of message - digests, and encryption and decryption functions. + This package provides functions for computation of message digests, + and encryption and decryption functions. +endef + +define Package/erlang-diameter +$(call Package/erlang/Default) + TITLE:=Diameter protocol + DEPENDS+= +erlang endef +define Package/erlang-diameter/description +$(call Package/erlang/Default/description) + This package implements Diameter protocol as defined by RFC 6733. +endef + +define Package/erlang-eldap +$(call Package/erlang/Default) + TITLE:=Erlang LDAP Client + DEPENDS+= +erlang +erlang-asn1 +endef + +define Package/erlang-eldap/description +$(call Package/erlang/Default/description) + This package provides client api to the Lightweight Directory Access Protocol + (LDAP). +endef + +define Package/erlang-erl-interface +$(call Package/erlang/Default) + TITLE:=Erlang erl_interface support + DEPENDS+= +erlang +endef + +define Package/erlang-erl-interface/description +$(call Package/erlang/Default/description) + This package provides support for Erlang interoperability with other languages. +endef + +define Package/erlang-ftp +$(call Package/erlang/Default) + TITLE:=Erlang FTP Client + DEPENDS+= +erlang +erlang-runtime-tools +endef + +define Package/erlang-ftp/description +$(call Package/erlang/Default/description) + This package implements File Transfer Protocol client. +endef define Package/erlang-inets $(call Package/erlang/Default) TITLE:=Internet clients and servers - VERSION:=9.2 - DEPENDS+= +erlang + DEPENDS+= +erlang +erlang-public-key endef define Package/erlang-inets/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides a container for Internet clients and - servers. Currently a FTP client, a HTTP client and server, and a tftp - client and server have been incorporated in Inets. + This package provides an HTTP client and server. endef - define Package/erlang-mnesia $(call Package/erlang/Default) TITLE:=Distributed database - VERSION:=4.23.2 DEPENDS+= +erlang endef define Package/erlang-mnesia/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides a distributed DataBase Management - System (DBMS), appropriate for telecommunications applications and - other Erlang applications which require continuous operation and - exhibit soft real-time properties. + This package provides a distributed DataBase Management System (DBMS), + appropriate for telecommunications applications and other Erlang applications + which require continuous operation and exhibit soft real-time properties. endef - -define Package/erlang-runtime-tools +define Package/erlang-odbc $(call Package/erlang/Default) - TITLE:=Low-profile debugging/tracing tools - VERSION:=2.1 - DEPENDS+= +erlang + TITLE:=Erlang ODBC application + DEPENDS+= +erlang +libodbc endef -define Package/erlang-runtime-tools/description +define Package/erlang-odbc/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides low footprint tracing/debugging tools - suitable for inclusion in a production system. + This package provides an Erlang interface to communicate with relational + SQL-databases. endef - -define Package/erlang-snmp +define Package/erlang-os-mon $(call Package/erlang/Default) - TITLE:=Simple Network Management Protocol (SNMP) support - VERSION:=5.16 - DEPENDS+= +erlang +erlang-asn1 + TITLE:=OS Monitoring Application + DEPENDS+= +erlang +erlang-sasl endef -define Package/erlang-snmp/description +define Package/erlang-os-mon/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides Simple Network Management Protocol - (SNMP) support including a MIB compiler and tools for creating SNMP - agents. + This package provides the following services: + cpu_sup CPU load and utilization supervision + memsup Memory supervision endef +define Package/erlang-parsetools +$(call Package/erlang/Default) + TITLE:=A set of parsing and lexical analysis tools + DEPENDS+= +erlang +endef + +define Package/erlang-parsetools/description +$(call Package/erlang/Default/description) + This package incluides the following tools: + yecc, LALR-1 Parser Generator. + leex, Lexical analyzer generator for Erlang. +endef define Package/erlang-public-key $(call Package/erlang/Default) TITLE:=Public Key support - VERSION:=1.16.1 - DEPENDS+= +erlang +erlang-crypto +erlang-asn1 + DEPENDS+= +erlang +erlang-asn1 endef define Package/erlang-public-key/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides functions to handle public-key infrastructure. + This package provides functions to handle public-key infrastructure. endef - -define Package/erlang-ssh +define Package/erlang-reltool $(call Package/erlang/Default) - TITLE:=Secure Shell (SSH) support - VERSION:=5.2.1 - DEPENDS+= +erlang +erlang-crypto + TITLE:=Erlang reltool support + DEPENDS+= +erlang +erlang-tools +erlang-sasl endef -define Package/erlang-ssh/description +define Package/erlang-reltool/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides an implementation of the Secure Shell - protocol, with SSH & SFTP support. + This package provides support for release management. endef - -define Package/erlang-ssl +define Package/erlang-runtime-tools $(call Package/erlang/Default) - TITLE:=Secure Sockets Layer (SSL) support - VERSION:=11.2.1 - DEPENDS+= +erlang +erlang-crypto + TITLE:=Low-profile debugging/tracing tools + DEPENDS+= +erlang +erlang-mnesia endef -define Package/erlang-ssl/description +define Package/erlang-runtime-tools/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides support for secure communication over - sockets. + This package provides low footprint tracing/debugging tools suitable + for inclusion in a production system. endef - -define Package/erlang-syntax-tools +define Package/erlang-sasl $(call Package/erlang/Default) - TITLE:=Abstract Erlang syntax trees handling support - VERSION:=3.2 + TITLE:=The System Architecture Support Libraries DEPENDS+= +erlang endef -define Package/erlang-syntax-tools/description +define Package/erlang-sasl/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides support for handling abstract Erlang - syntax trees. + The SASL application provides support for: + Error logging. + Alarm handling. + Release handling. + Report browsing. endef - -define Package/erlang-tools +define Package/erlang-snmp $(call Package/erlang/Default) - TITLE:=Erlang tools support - VERSION:=4.0 - DEPENDS+= +erlang + TITLE:=Simple Network Management Protocol (SNMP) support + DEPENDS+= +erlang +erlang-asn1 +erlang-runtime-tools endef -define Package/erlang-tools/description +define Package/erlang-snmp/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides support for misc tools. + This package provides Simple Network Management Protocol (SNMP) support + including a MIB compiler and tools for creating SNMP agents. +endef + +define Package/erlang-ssh +$(call Package/erlang/Default) + TITLE:=Secure Shell (SSH) support + DEPENDS+= +erlang +erlang-public-key +erlang-runtime-tools endef +define Package/erlang-ssh/description +$(call Package/erlang/Default/description) + This package provides an implementation of the Secure Shell protocol, + with SSH & SFTP support. +endef -define Package/erlang-reltool +define Package/erlang-ssl $(call Package/erlang/Default) - TITLE:=Erlang reltool support - VERSION:=1.0.1 - DEPENDS+= +erlang + TITLE:=Secure Sockets Layer (SSL) support + DEPENDS+= +erlang +erlang-crypto +erlang-inets +erlang-runtime-tools endef -define Package/erlang-reltool/description +define Package/erlang-ssl/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides support for release management. + This package provides support for secure communication over sockets. endef +define Package/erlang-syntax-tools +$(call Package/erlang/Default) + TITLE:=Abstract Erlang syntax trees handling support + DEPENDS+= +erlang +erlang-compiler +endef -define Package/erlang-erl-interface +define Package/erlang-syntax-tools/description +$(call Package/erlang/Default/description) + This package provides support for handling abstract Erlang syntax trees. +endef + +define Package/erlang-tftp $(call Package/erlang/Default) - TITLE:=Erlang erl_interface support - VERSION:=5.5.2 + TITLE:=Trivial FTP application DEPENDS+= +erlang endef -define Package/erlang-erl-interface/description +define Package/erlang-tftp/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides support for erlang interoperability with other languages. + This package implements the following IETF standards: + RFC 1350, The TFTP Protocol (revision 2). + RFC 2347, TFTP Option Extension. + RFC 2348, TFTP Blocksize Option. + RFC 2349, TFTP Timeout Interval and Transfer Size Options. endef -define Package/erlang-os_mon +define Package/erlang-tools $(call Package/erlang/Default) - TITLE:=Erlang OS Monitoring Application - VERSION:=2.10 - DEPENDS+= +erlang + TITLE:=Erlang tools support + DEPENDS+= +erlang +erlang-runtime-tools +erlang-compiler endef -define Package/erlang-os_mon/description +define Package/erlang-tools/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides the following services: - cpu_sup CPU load and utilization supervision - disksup Disk supervision - memsup Memory supervision + This package provides support for misc tools. endef define Package/erlang-xmerl $(call Package/erlang/Default) - TITLE:=Erlang XML export - VERSION:=2.0 + TITLE:=XML 1.0 support DEPENDS+= +erlang endef define Package/erlang-xmerl/description $(call Package/erlang/Default/description) - . - This Erlang/OTP package provides functions for exporting XML data to an external format + This package provides functions for exporting XML data to an external format. endef -# Host - -HOST_CONFIGURE_ARGS += \ - --without-wx \ - --with-ssl="$(STAGING_DIR_HOST)" \ - --without-javac - -# Target - -CONFIGURE_ARGS += \ - --without-javac \ - --enable-dynamic-ssl-lib - -## Override incorrect THP detection by configure script -ERTS_THP=no -ifeq ($(CONFIG_KERNEL_TRANSPARENT_HUGEPAGE),y) - ERTS_THP=yes -endif - -CONFIGURE_VARS += \ - SHLIB_LD="$(TARGET_CC)" \ - TARGET_ARCH="$(TARGET_ARCH)" \ - erts_cv_linux_thp=$(ERTS_THP) \ - ac_cv_func_mmap_fixed_mapped=yes \ - ac_cv_path_WX_CONFIG_PATH=no \ - erl_xcomp_getaddrinfo=no \ - erl_xcomp_sysroot="$(STAGING_DIR)" - -EXTRA_CFLAGS+=-D_GNU_SOURCE -EXTRA_LDFLAGS+=-lz - define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ - noboot - $(MAKE) -C $(PKG_BUILD_DIR) \ + MAKEFLAGS=$(PKG_JOBS) \ INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ - install + noboot install endef define Package/erlang/install @@ -395,16 +427,23 @@ $(eval $(call BuildPackage,erlang)) $(eval $(call BuildModule,asn1,asn1)) $(eval $(call BuildModule,compiler,compiler)) $(eval $(call BuildModule,crypto,crypto)) +$(eval $(call BuildModule,diameter,diameter)) +$(eval $(call BuildModule,eldap,eldap)) +$(eval $(call BuildModule,erl-interface,erl_interface)) +$(eval $(call BuildModule,ftp,ftp)) $(eval $(call BuildModule,inets,inets)) $(eval $(call BuildModule,mnesia,mnesia)) +$(eval $(call BuildModule,odbc,odbc)) +$(eval $(call BuildModule,os-mon,os-mon)) +$(eval $(call BuildModule,parsetools,parsetools)) +$(eval $(call BuildModule,public-key,public_key)) +$(eval $(call BuildModule,reltool,reltool)) $(eval $(call BuildModule,runtime-tools,runtime_tools)) +$(eval $(call BuildModule,sasl,sasl)) $(eval $(call BuildModule,snmp,snmp)) -$(eval $(call BuildModule,public-key,public_key)) $(eval $(call BuildModule,ssh,ssh)) $(eval $(call BuildModule,ssl,ssl)) $(eval $(call BuildModule,syntax-tools,syntax_tools)) +$(eval $(call BuildModule,tftp,tftp)) $(eval $(call BuildModule,tools,tools)) -$(eval $(call BuildModule,reltool,reltool)) -$(eval $(call BuildModule,erl-interface,erl_interface)) -$(eval $(call BuildModule,os_mon,os_mon)) $(eval $(call BuildModule,xmerl,xmerl))